\chapter{Requirement from the set C}

\section{Dynamic memory management}

\subsection*{Providing dynamic memory allocation}
\textbf{Status:} done

There is a module in the kernel that allows dynamic memory allocation. This module maintains a kind of linked list that keeps track of what is allocated or free. Each time memory is allocated, a header is added to the amount of memory asked. These headers form the links of the aforementioned linked list. 

The whole kernel is written to use that module and has no fixed limit on the number of processes/messages it can handle. 


\subsection*{User programs}
\textbf{Status:} done

A user program has been made to show how to use dynamic memory allocation in PORN-OS. It creates processes until it runs out of memory and keeps the pid into a linked list (by dynamically allocating new links). When the system is out of memory, it kills all its children, frees the list and exits.
